package models

import (
	_ "github.com/go-sql-driver/mysql"  // 这里要使用 这种方式导入这个包

	"os"
	"github.com/astaxie/beego/orm"
	"fmt"
	"log"
	"strconv"
)

// 保存会员信息的结构体.......
type Profile struct {
	Url         string
	Name        string
	Gender      string
	Height      string
	Weight      string
	Job         string
	JobLocation string
	Education   string
	Income      string
	BirthPlace  string
	Age         string
	Marriage    string
	Id          int64 `orm:"pk"` // 设置为数据库的主键
	UserElId    string
}

const dataSource = `root:123456@tcp(127.0.0.1:3306)/zhenais?charset=utf8&loc=Asia%2FShanghai`

// 执行 init函数
func init() {
	init_db("mysql", `default`, dataSource)
}

func init_db(driverName, aliasName, dataSource string) {
	var err error
	orm.Debug = false
	err = orm.RegisterDriver(driverName, orm.DRMySQL)

	if err != nil {
		fmt.Println("register db  driver error ", err)
		os.Exit(2)
	}

	fmt.Println("data Source ", dataSource)

	err = orm.RegisterDataBase(aliasName, driverName, dataSource, 30)

	if err != nil {
		log.Println("error register data base error ", err.Error())

		os.Exit(2)
	}

	// 注册模型
	orm.RegisterModel(&Profile{})

}


// 更新或者........
func (p *Profile) InsertOrUpdate() {
	newOrm := orm.NewOrm()
	if p.Id == 0 {
		p.Id, _ = strconv.ParseInt(p.UserElId, 10, 64)
	}

	id, err := newOrm.InsertOrUpdate(p, )
	log.Printf("error %+v , id = %d \n", err, id)
}